package day1027.dem3.two;

import java.lang.reflect.Field;

/**
 * @program: fanxing
 * @description:
 * @author: 诸葛龙辰
 * @create: 2022-10-27 20:44
 **/
public class Test {
    public static void main(String[] args) throws Exception {
       Class<Edg> edgClass = Edg.class;
       Edg edg = edgClass.newInstance();
        System.out.println(edg);
//获取反射类对应对象。
        Field name =edgClass.getDeclaredField("name");
        //为属性赋值-- edg.setName(); 普通的赋值
        name.set(edg,"sky");
        //通过反射默认对指定属性的对象赋值
        System.out.println(edg);
        //通过反射获取指定属性的对象值。  edg.getName()普通获取
        Object o = name.get(edg);
        System.out.println(o);
        //因为age是一个私有属性，无法直接为私有属性赋值。
        Field age = edgClass.getDeclaredField("age");
        age.setAccessible(true);
        age.set(age,18);
        System.out.println(edg);
        Object o1 = age.get(edg);
        System.out.println(o1);
    }
}
class Lol{
    public String address;
    private String sex;
}
class Edg extends Lol{
    public String name;
    private Integer age;

    @Override
    public String toString() {
        return "Edg{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
